package bupt.party.online.video;

import java.util.List;

public interface IVideoPool{
	/**
	 * 0000
	 * 0100
	 * 0101
	 * 获取第零、第一或第二级视频文件
	 * @param categoryId
	 * @return
	 */
	public List<Video> getVideosByCategoryId(String categoryId);
	
	
	/**
	 * 0, 1, 2
	 * 获得未发布的视频文件
	 * @param categoryId
	 * @return
	 */
	public List<Video> getVideosByStatus(String status);
	
	/**
	 * 获得符合categoryId和status的视频文件
	 * @param categoryId
	 * @param status
	 * @return
	 */
	public List<Video> getVideos(String categoryId, String status);
	
	/**
	 * 获取所有的视频文件
	 * @return
	 */
	public List<Video> getAllVideos();
	
	/**
	 * 获取当个Video
	 * @param videoPic
	 * @return
	 */
	public Video getVideo(String videoPic);
	
	/**
	 * 清空整个pool
	 */
	public void clear();
	
	/**
	 * 添加一个视频文件
	 * @param item
	 */
	public void addVideo(Video item);
	
	/**
	 * 根据videoId更新所有信息
	 * @param videoId
	 * @param categoryId
	 * @param picPath
	 * @param introduction
	 */
	public boolean updateVideoInfo(String videoId, String categoryId, String name,  String picPath, String introduction, String videoStatus1);
	
	/**
	 * 交换两个视频的上传时间
	 * @param videoPath1
	 * @param videoPath2
	 * @return
	 */
	public boolean swapVideosUploadDate(String videoPath1, String videoPath2);
	
	/**
	 * 更新已排序的视频
	 */
	public void updateSortedVideoMap();
	
	/**
	 * 获取最新视频
	 * @return
	 */
	public Video getLastestVideo();
	
	/**
	 * 获取最热视频列表
	 * @return
	 */
	public List<Video> getHotestVideos();
	
	/**
	 * 移动若干个位置
	 * @param step
	 * @return
	 */
	public boolean moveStep(String videoPath, int step);
	
	/**
	 * 获得最新的3个视频文件
	 * @return
	 */
	public List<Video> getLastest3Video();
}
